
#include <bits/stdc++.h>

using namespace std;

int main() {
  int n;
  cin >> n;
  vector<int> nums(n + 1); // 创建一个大小为 n + 1 的向量，以便从索引 1 开始

  // 从索引 1 开始读取输入
  for (int i = 1; i <= n; i++) {
    cin >> nums[i];
  }

  int count = 0;

  // 遍历每个可能的中间元素 j
  for (int j = 2; j <= n - 1; j++) { // j 从 2 开始
    int a_j = nums[j];
    int max_i = INT_MIN;
    int count_k = 0;

    // 统计小于 a_j 的 a_i
    for (int i = 1; i < j; i++) { // i 从 1 开始
      if (nums[i] < a_j) {
        max_i = max(max_i, nums[i]);
      }
    }

    // 统计大于 max_i 且小于 a_j 的 a_k
    for (int k = j + 1; k <= n; k++) { // k 从 j + 1 开始
      if (nums[k] > max_i && nums[k] < a_j) {
        count_k++;
      }
    }

    count += count_k; // 更新符合条件的三元组数量
  }

  cout << count << endl; // 输出符合条件的三元组数量
  return 0;
}